package com.jsyl.lwbk.business.service.education;

import com.jsyl.lwbk.business.domain.education.ChildTrainingProgram;
import com.jsyl.lwbk.business.dto.EvaluateInfoDTO;
import com.jsyl.lwbk.business.dto.education.*;
import com.jsyl.lwbk.business.vo.education.TrainingScoreCountVO;

import java.util.List;

/**
 * @author jh
 * @date 2020-11-02 16:18
 * @desc
 **/
public interface IChildTrainingProgramService {

    void insert(ChildTrainingProgram childTrainingProgram);

    List<ChildTrainingProgram> list(ChildTrainingProgramDTO childTrainingProgramDTO);

    List<ChildTrainingProgram> findByChildAndProjecttype(ChildTrainingProgramDTO childTrainingProgramDTO);

    List<ChildTrainingProgram> findByChildAndEvaluate(ChildTrainingProgramDTO childTrainingProgramDTO);

    ChildTrainingProgram findById(Long id);

    List<ChildTrainingProgram> selectQuestion(ChildTrainingProgramDTO childTrainingProgramDTO);

    List<ChildTrainingProgram> listConsolidates(ListConsolidatesDTO listConsolidatesDTO);

    List<ChildTrainingProgram> listLastConsolidates(TrainingProgramChildRecordListDTO trainingProgramChildRecordListDTO);

    List<ChildTrainingProgram> listReplaceTrainingProgram(Long programId,String trainingContent);

    CheckProgramDTO getCheckProgramDTO(ListConsolidatesDTO listConsolidatesDTO);

    String downloadTrainingProgramTeacher(ListConsolidatesDTO listConsolidatesDTO,CheckProgramDTO checkProgramDTO,Integer urlType,String loginName);

    String downloadTrainingReport(TrainingProgramChildRecordListDTO trainingProgramChildRecordListDTO, TrainingReportDTO trainingReportDTO, Integer urlType, String loginName);



    List<TrainingScoreCountVO> selectTrainingScoreCount(ChildTrainingProgramDTO childTrainingProgramDTO);

    void updateChildTrainingProgram(EditTrainingProgramDTO editTrainingProgramDTO);

    void replaceChildTrainingProgram(EditTrainingProgramDTO editTrainingProgramDTO);

    void revokeChildTrainingProgram(EditTrainingProgramDTO editTrainingProgramDTO);

    void saveChildTrainingProgram(SaveChildTrainingProgramDTO saveChildTrainingProgramDTO,String loginName);

    void saveNewChildTrainingProgram(SaveChildTrainingProgramDTO saveChildTrainingProgramDTO,String loginName);


    String getConfirmDate(Long childId,Integer projectType,String trainingProgramNumber);

    EvaluateInfoDTO getEvaluateInfo(Long childId, Integer projectType, String trainingProgramNumber);

    /**
     * 统计已选择的新生标准计划数
     * @param childId
     * @param trainingProgramNumber
     * @return
     */
    int countNewProgram(Long childId, String trainingProgramNumber,Integer projectType);


}
